﻿// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;

namespace WCS.Application.Service.Plc;
public class HoistPlcStruct
{

}
public struct DB20
{
    // 可读标识(1=可读,2=不可读)
    public int readFlag { get; set; }

    // 应答标识(1=需要应答,2=不需要应答)
    public int ackFlag { get; set; }


    /// <summary>
    /// 指令下发
    /// </summary>
    public int command { get; set; }

    /// <summary>
    /// 任务类型1：表示点位移动，（command==1时） 2：表示托盘码写入，（使用场景：扫码 枪了，人工补码，与任务不挂钩）
    /// </summary>
    public int taskType { get; set; }

    // 3位设备编号(纯数字)
    public int deviceNo { get; set; }

    // 任务号(10000-99999循环使用)
    public int taskNoDB20 { get; set; }

    // 容器号(8位ASCII码，格式：2位字母+5位数字)
    public byte[] ContainerNoDB20 { get; set; }

    // 起始位置(3位编码)
    public int startPosition { get; set; }

    // 目的位置(3位编码)
    public int targetPosition { get; set; }

    // 预留字段
    public int Rel0 { get; set; }
}

public struct DB30
{
   





    /// <summary>
    /// 设备编号
    /// </summary>
    public int deviceNo { get; set; }

    /// <summary>
    /// 工作模式1自动2手动
    /// </summary>
    public int workMode { get; set; }


    /// <summary>
    /// 设备状态正常：1；异常：2，提升机锁定：3，（只针对提升机设备）
    /// </summary>
    public int equipStatus { get; set; }

   /// <summary>
   /// 载货状态，光电状态1无货2有货
   /// </summary>
    public int loadStatus { get; set; }

    /// <summary>
    /// 报警状态 报警信号  1-99范围； -99范围； 无报警默认：1 运行超时：2 升降超时：3 运行变频器报警：4 升降变频器报警：5 光电异常：6 扫码器异常：7 急停：8;) 
    /// </summary>
    public int faultCode { get; set; }

    /// <summary>
    /// 任务号(10000-99999循环使用)
    /// </summary>
    public int taskNo { get; set; }

    /// <summary>
    /// 容器号(8位ASCII码，格式：2位字母+5位数字)
    /// </summary>
    public byte[] containerNo { get; set; }

}
public struct DB40
{
    // 可读标识(1=可读,2=不可读)
    public int readFlag { get; set; }

    // 应答标识(1=需要应答,2=不需要应答)
    public int ackFlag { get; set; }


    /// <summary>
    /// 指令下发
    /// </summary>
    public int command { get; set; }

    /// <summary>
    /// 任务类型1：表示点位移动，（command==1时） 2：表示托盘码写入，（使用场景：扫码 枪了，人工补码，与任务不挂钩）
    /// </summary>
    public int taskType { get; set; }

    // 3位设备编号(纯数字)
    public int deviceNo { get; set; }

    // 任务号(10000-99999循环使用)
    public int taskNoDB40 { get; set; }

    // 容器号(8位ASCII码，格式：2位字母+5位数字)
    public byte[] ContainerNoDB40 { get; set; }

    /// <summary>
    /// 业务异常 业务异常(1-99): 
    ///正常：1； 左超：2； 右超：3； ：4； 前超：5； 后超：6； 超重：7, Noread：99；（没扫码条码）
    /// </summary>
    public int businessError { get; set; }

    /// <summary>
    /// 无高度信息，默认0； 1；0-1600：  2；1600-1700：
    /// </summary>
    public int hight { get; set; }

    /// <summary>
    /// 具体的重量；若不需要重量信息或无称
    /// </summary>
    public int weight { get; set; }
    /// <summary>
    /// 光电状态,1有货，2无货
    /// </summary>
    public int cargoStatus { get; set; }

    // 预留字段
    public int Rel0 { get; set; }
}
